package com.summer.user.service;

import com.summer.common.ServerResponse;
import com.summer.user.pojo.User;
import com.summer.user.pojo.UserLogin;

/** 
 * @描述：用户 Service 层接口
 * @作者：yang 
 * @时间：2017年6月22日 下午4:49:36 
 * @版本：1.0
 */
public interface IUserService {

	/**
	 * 用户登录
	 * @param username
	 * @param password
	 * @return
	 */
	ServerResponse<UserLogin> login(String username, String password);

	/**
	 * 用户注册
	 * @param user
	 * @return
	 */
	ServerResponse<String> register(User user);

	/**
	 * 时时校验 用户名 或者 邮箱是否已经注册（根据type的值是email还是username，来判断）
	 * @param str
	 * @param type
	 * @return
	 */
    ServerResponse<String> checkValid(String str,String type);

    /**
     * 忘记密码时，发送邮件修改密码
     * @param username
     * @return
     */
    ServerResponse<String> sendEmailForForget(String email);

    /**
     * 点击邮件中的链接（带有token参数），重置密码
     * @param email
     * @param passwordNew
     * @param forgetToken
     * @return
     */
    ServerResponse<String> forgetResetPassword(String email,String passwordNew,String forgetToken);

    /**
     * 登录状态下，重置密码
     * @param passwordOld
     * @param passwordNew
     * @param user
     * @return
     */
    ServerResponse<String> resetPassword(String passwordOld,String passwordNew,Integer id);

    /**
     * 更新个人信息
     * @param user
     * @return
     */
    ServerResponse<User> updateInformation(User user);

    /**
     * 获取个人信息
     * @param userId
     * @return
     */
    ServerResponse<User> getInformation(Integer userId);

    ServerResponse checkAdminRole(User user);
}
